Python中return返回值的简单用法

您所在的位置:网站首页 返回值return res Python中return返回值的简单用法

Python中return返回值的简单用法

2024-03-24 09:42| 来源: 网络整理| 查看: 265

经常会遇到有人问“为什么方法的最后一行,有的要return一个结果,但是有的却没有return,学习的时候很少看到有书上讲解这个return的用法,因此一直搞不清这个return是干什么用的?到底该什么时候用,return的值应该怎么确定?…" 下面我们就简单的探讨一下这个return的用法。 首先关于英文单词return,它是返回的意思。那么关于它将数据返回到哪儿去了,以及哪些数据需要返回?我们下面将举几个例子进行探讨。

问题1:return将数据返回到哪儿去了? 我们先看下面这几行代码,构造一个求和方法,然后方法结果执行结果print打印出来。

def sum_result(a, b): result = a + b if __name__ == "__main__": print(sum_result(1, 2))

执行结果为:

D:\Python\python.exe C:/Users/Desktop/Code/return.py None Process finished with exit code 0

发现print打印的结果为None. 接下来我们在上述代码的基础上再添加一行代码,为

def sum_result(a, b): result = a + b return result if __name__ == "__main__": print(sum_result(1, 2))

运行结果为:

D:\Python\python.exe C:/Users/lc115/Desktop/Code/return.py 3 Process finished with exit code 0

啊哈,发现此时print打印的结果为1+2的值(3)了,也即为求和方法中result的运算结果。 通过上面两个代码对比,我们发现当在方法中增加了return后,整个方法对外体现就是所return的值。以上例为例,在方法sum_result中,增加了一条return result 代码后,sum_result方法对外体现的值即为result,因此将方法sum_result print出来,结果是result的值。但是如果方法中没有return 语句,则相当于是return None,没有返回值,因此print 的结果为None. 那是不是我们只能return方法中的运算结果呢?下面我们继续探讨一下。

问题2:我们return时应该return什么值?以及应该什么时候要用return? 下面我们再将上面的代码改一下,我们不return result,我们return一个自定义字符串看是否可以。代码如下:

def sum_result(a, b): result = a + b return "hello" if __name__ == "__main__": print(sum_result(1, 2))

运行结果:

D:\Python\python.exe C:/Users/Desktop/Code/return.py hello Process finished with exit code 0

发现输出打印的是字符串"hello" 我们再return一个布尔类型的值试试:

def sum_result(a, b): result = a + b return True if __name__ == "__main__": print(sum_result(1, 2))

运行结果为:

D:\Python\python.exe C:/Users/Desktop/Code/return.py True Process finished with exit code 0

发现也可以直接return一个布尔类型的值。

其实return后面可以接任何值,可以与方法运算有关的,也可以跟方法运算无关的。当方法中一旦有return一个返回值,那么该方法对外的整体”体现“就是该return的结果。因此我们在实际写代码的过程中,是否需要return以及return什么值还是需要根据具体的需求来看,比如有时候方法B需要用到方法A中的运算结果,那么就需要将A方法的运算结果return,然后代入到B方法中去执行。例如:

def func_a(): result = 1 + 2 return result def func_b(): sum = func_a() + 3 print(sum) if __name__ == "__main__": func_b()

运行结果为:

D:\Python\python.exe C:/Users/Desktop/Code/return.py 6 Process finished with exit code 0

问题3:在一个方法中,如果有多个值需要return该如何写? 我们先来看一个例子,当有多个return语句时最终输出是怎样的?

def func_a(): result = 1 + 2 return result return True return 0 if __name__ == "__main__": print(func_a())

运行结果为:

D:\Python\python.exe C:/Users/Desktop/Code/return.py 3 Process finished with exit code 0

发现无论写多少return语句,最终只返回第一个return语句的结果。 那如果我们需要返回多个值,该怎么写呢?写法如下:

def func_a(): result = 1 + 2 return result, True, 0, "hello" if __name__ == "__main__": print(func_a()) print(type(func_a())) print(func_a()[0]) print(func_a()[1]) print(func_a()[2]) print(func_a()[3])

运行结果如下:

D:\Python\python.exe C:/Users/lc115/Code/return.py (3, True, 0, 'hello') 3 True 0 hello Process finished with exit code 0

我们发现将多个return结果一列写出来,中间用英文逗号隔开后,输出的结果是一个元组,如果需要单独获取某个值可以通过获取元组元素的方法得到相应的值。

总结: 方法对外”体现“的数据就是return的值,方法中return的值可以是任意值,需要自己根据代码需求来给定。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3